(function ($) {
    $.fn.ajaxSubmit = function (options) {
        var form = this;
        // var user_id=$("input[name='uid_hidden']").val();
        var contentType=false;
        var processData=false;
        // if(user_id!=undefined&&user_id!=""&&user_id!=null&&(user_id=="1"||user_id=="37857")){
            var formData = form.serialize();
            // alert('test');
            // console.log(formData);
            contentType="application/x-www-form-urlencoded";
            processData=true;
        // }else{
        //     var formData = new FormData(form[0]);
        // }
        var formAction = form.attr('action');
        var formMethod = form.attr('method');
        if (formMethod == null || !/^(POST|GET)$/i.test(formMethod.trim())) {
            formMethod = "GET";
        }
        var dataType = options.dataType;
        if (dataType == null) {
            dataType = 'json';
        }
        var success = options.success;
        if (success == null) {
            success = function () { };
        }
        var error = options.error;
        if (error == null) {
            error = function () { };
        }
        $.ajax({
            type: formMethod,
            url: formAction,
            data: formData,
            dataType: dataType,
            contentType: contentType,
            processData: processData,
            cache: false,
            success: success,
            error: error,
        });
    };
})(Zepto);

function mb_strlen(str) {
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 3 : 1;
    }
    return len;
}

function mb_cutstr(str, maxlen, dot) {
    var len = 0;
    var ret = '';
    var dot = !dot ? '...' : dot;
    maxlen = maxlen - dot.length;
    for (var i = 0; i < str.length; i++) {
        len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 3 : 1;
        if (len > maxlen) {
            ret += dot;
            break;
        }
        ret += str.substr(i, 1);
    }
    return ret;
}

/*
 ajax 请求函数
 CallUrl 请求url
 CallData 请求数据
 CallBack 返回的数据处理函数
 CallType 请求类型可选get, post
 CallDataType 服务器返回的数据类型 可选XML ,Json jsonp script html text等
 */
function Ajaxcall(CallUrl, CallData, CallBack, CallType, CallDataType) {
    $.showIndicator();
    var _data = {inajax: 1};
    if (CallData) {
        _data = $.extend(CallData, _data);
    }
    $.ajax({
        type: (CallType ? CallType : 'post').toUpperCase(),	//可选get, post
        url: CallUrl,	//这里是接收数据的PHP程序
        data: $.param(_data),	//传给PHP的数据，多个参数用&连接
        dataType: ( CallDataType ? CallDataType : 'json' ),//服务器返回的数据类型
        xhrFields: { withCredentials:true },
        success: function (result) {
            //这里是ajax提交成功后，PHP程序返回的数据处理函数。result是返回的数据，数据类型在dataType参数里定义！
            if (typeof(CallBack) === "function") {
                CallBack(result);
            }
            $.hideIndicator();
        },
        error: function (xhr, errorType, error) {
            $.hideIndicator();
            //ajax提交失败的处理函数！
            console.log(xhr.responseText)
           // if(xhr.responseText)
               // alert(xhr.responseText);

        }
    });
} //Ajaxcall('index.php', {a:b}, function, 'post', 'html');

/** 手机格式检测 */
function check_phone(num) {
    var patten = /^1[3,4,5,6,7,8,9]\d{9}$/;
    return patten.test(num);
}
/** 邮箱格式检测 */
function check_email(str) {
    var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    return reg.test(str);
}
/** 名字检测 */
function check_name(val) {
    reg = /^[\u4E00-\u9FA5]{2,4}$/;
    return reg.test(val);
}
/** 更新验证码 */
function captcha_code() {
    var _this = $('#captcha_code');
    var _src = _this.data('src');
    var symbol = _src.indexOf('?') ? '&' : '?';
    _this.attr('src', _this.data('src') + symbol + '_t=' + Math.random());
    $('#verify_code').val('');
}

$(function () {
    /*
     * ajax 提交表单
     * 带 .AjaxSubmitForm 的表单自动转为ajax方式提交
     */
    $(document).on('submit', '.AjaxSubmitForm', function () {
        var _this = $(this);
        /* 表单检测 */
        var CallFunc = _this.data('callfunc');
        if (CallFunc) {
            CallFunc = eval(CallFunc);
            if (typeof(CallFunc) === "function" && !CallFunc()) {
                return false;
            }
        }
        _this.find('button[type=submit]').prop('disabled', true);
        $.showIndicator();
        _this.ajaxSubmit({
            dataType: "json",
            success: function (data) {
                $.hideIndicator();
                var Callback = _this.data('callback');
                if (Callback) {
                    Callback = eval(Callback);
                    if (typeof(Callback) === "function") {
                        Callback(data);
                    }
                } else {
                    $.toast(data.message);
                    if (data.type == 'success' && data.redirect) {
                        window.setTimeout(function () {
                            window.location.href = data.redirect;
                        }, 2000);
                    }
                }
                if (data.state != 1) {
                    _this.find('button[type=submit]').prop('disabled', false);
                }
            },
            error: function (data) {
                $.hideIndicator();
                console.log(data.response);
                //$.alert(data.response);
                _this.find('button[type=submit]').prop('disabled', false);
            }
        });
        return false;
    });

    $('.del').click(function () {
        var _this = $(this);
        var delurl = _this.attr('href');
        if (confirm('您确定要删除此内容？')) {
            Ajaxcall(delurl, '', function (data) {
                $.toast(data.msg);
                if (data.state == 1) {
                    $('#list_' + _this.data('id')).remove();
                }
            }, 'get', 'json');
        }
        return false;
    });
});
